//go:build windows
// +build windows

package win窗口类

import (
	"gitee.com/go_888/extends/windows/internal/windows"
)

var (
	user32                   = 内部类.DLL载入("user32.dll")
	sendMessageTimeoutA      = user32.X命令("SendMessageTimeoutA")
	getCursorPos             = user32.X命令("GetCursorPos")
	getWindowThreadProcessId = user32.X命令("GetWindowThreadProcessId")
	attachThreadInput        = user32.X命令("AttachThreadInput")
	setActiveWindow          = user32.X命令("SetActiveWindow")
	openIcon                 = user32.X命令("OpenIcon")
	setWindowPos             = user32.X命令("SetWindowPos")
	postMessageW             = user32.X命令("PostMessageW")
	setParent                = user32.X命令("SetParent")
	clientToScreen           = user32.X命令("ClientToScreen")
	setForegroundWindow      = user32.X命令("SetForegroundWindow")
	getWindowTextLengthW     = user32.X命令("GetWindowTextLengthW")
	getWindowTextW           = user32.X命令("GetWindowTextW")
	setWindowTextW           = user32.X命令("SetWindowTextW")
	getClassNameW            = user32.X命令("GetClassNameW")
	showWindow               = user32.X命令("ShowWindow")
	getAncestor              = user32.X命令("GetAncestor")
	getParent                = user32.X命令("GetParent")
	isWindowVisible          = user32.X命令("IsWindowVisible")
	showWindowAsync          = user32.X命令("ShowWindowAsync")
	getDesktopWindow         = user32.X命令("GetDesktopWindow")
	enableWindow             = user32.X命令("EnableWindow")
	findWindowW              = user32.X命令("FindWindowW")
	getClientRect            = user32.X命令("GetClientRect")
	getForegroundWindow      = user32.X命令("GetForegroundWindow")
	getFocus                 = user32.X命令("GetFocus")
	isIconic                 = user32.X命令("IsIconic")
	isZoomed                 = user32.X命令("IsZoomed")
	sendMessageW             = user32.X命令("SendMessageW")
	showScrollBar            = user32.X命令("ShowScrollBar")
	setFocus                 = user32.X命令("SetFocus")
	enumWindows              = user32.X命令("EnumWindows")
	findWindowExW            = user32.X命令("FindWindowExW")
	isChild                  = user32.X命令("IsChild")
	isWindow                 = user32.X命令("IsWindow")
	getWindowLongA           = user32.X命令("GetWindowLongA")
	isWindowEnabled          = user32.X命令("IsWindowEnabled")
	getWindowRect            = user32.X命令("GetWindowRect")
	moveWindow               = user32.X命令("MoveWindow")
	findWindowA              = user32.X命令("FindWindowA")
	enumChildWindows         = user32.X命令("EnumChildWindows")
	windowFromPoint          = user32.X命令("WindowFromPoint")
	getWindowInfo            = user32.X命令("GetWindowInfo")
	getTopWindow             = user32.X命令("GetTopWindow")
	getWindow                = user32.X命令("GetWindow")
	updateWindow             = user32.X命令("UpdateWindow")
)

var (
	kernel32           = 内部类.DLL载入("kernel32.dll")
	getCurrentThreadId = kernel32.X命令("GetCurrentThreadId")
	procCloseHandle    = kernel32.X命令("CloseHandle")
	openProcess        = kernel32.X命令("OpenProcess")
	getCurrentProcess  = kernel32.X命令("GetCurrentProcess")
)

var (
	psapi                = 内部类.DLL载入("Psapi.dll")
	getModuleFileNameExW = psapi.X命令("GetModuleFileNameExW")
)

type X窗口坐标 struct {
	X左, X顶, X右, X下 int
}
type X窗口坐标大小 struct {
	X左, X顶, X宽, X高 int
}

// 定义窗口信息结构体
type X窗口信息 struct {
	X窗口句柄 int
	X进程id int
	X线程id int
	X标题   string
	X类名   string
}
